{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2638f19",
   "metadata": {},
   "source": [
    "本周作业\n",
    "\n",
    "* 1. 尝试创建detect.py 并实现功能调用\n",
    "* 2. 尝试创建analyze.py\\compare.py\\search.py，并实现功能调用\n",
    "* 3. 尝试存放宿舍4位同学的人脸信息到 人脸数据集（xxx栋xxxx宿舍）：\n",
    "> 1. 完善faceset信息\n",
    "> 2. 实现人脸搜索和人脸对比，打印结果：是本人 OR 不是本人"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "acde0e1e",
   "metadata": {},
   "source": [
    "#  尝试创建detect.py 并实现功能调用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "57c5e7ff",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "86888ca9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests\n",
    "API_KEY = 'jVvZmc_3Fnub6PS-UCZJovCn21Rd-BUf'\n",
    "API_S = 'N2kKnsLpbE6vCY81kmcr3fL5ZFgRPtOR'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d547cf8b",
   "metadata": {},
   "outputs": [],
   "source": [
    "import detect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c6b655dd",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on module detect:\n",
      "\n",
      "NAME\n",
      "    detect\n",
      "\n",
      "FUNCTIONS\n",
      "    face_detect(API_key, API_sercret, image_path)\n",
      "        该函数为调用face++ face_detect接口\n",
      "\n",
      "FILE\n",
      "    /Users/a123/api/week04/detect.py\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(detect)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "5ee672af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648197965,743c5a2f-920f-4a40-8761-c4ed8a5a7673',\n",
       " 'time_used': 214,\n",
       " 'faces': [{'face_token': '9314fe8c89b78a3eecdc3c900852c552',\n",
       "   'face_rectangle': {'top': 114, 'left': 458, 'width': 131, 'height': 131}}],\n",
       " 'image_id': 'wsDxk2Us3E5eh9jFQgzW+Q==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "detect.face_detect(API_KEY,API_S,'kylie_1.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b335767c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "2dd44bef",
   "metadata": {},
   "source": [
    "# 尝试创建analyze.py，并实现功能调用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e140746d",
   "metadata": {},
   "outputs": [],
   "source": [
    "face1 = detect.face_detect(API_KEY,API_S,'kylie_1.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "cc5c1dc6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'257208d826085d4ecaa96e6f6ab7e246'"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_tokens = face1['faces'][0]['face_token']\n",
    "face_tokens"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b81fffe8",
   "metadata": {},
   "outputs": [],
   "source": [
    "import analyze"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "c8790722",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on module analyze:\n",
      "\n",
      "NAME\n",
      "    analyze\n",
      "\n",
      "FUNCTIONS\n",
      "    face_analyze(API_key, API_sercret, face_tokens, landmark=1, attributes=None, face_rectangle=None, beauty_score_min=0, beauty_score_max=100)\n",
      "        该函数为调用face++ face_analyze接口\n",
      "\n",
      "FILE\n",
      "    /Users/a123/api/week04/analyze.py\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(analyze)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "2003d0ea",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 77,\n",
       " 'request_id': '1648197970,fbb80fc3-cd9d-4d71-afc7-6ebf428f9687',\n",
       " 'faces': [{'landmark': {'mouth_upper_lip_left_contour2': {'y': 201, 'x': 493},\n",
       "    'mouth_upper_lip_top': {'y': 198, 'x': 506},\n",
       "    'mouth_upper_lip_left_contour1': {'y': 197, 'x': 500},\n",
       "    'left_eye_upper_left_quarter': {'y': 146, 'x': 469},\n",
       "    'left_eyebrow_lower_middle': {'y': 134, 'x': 469},\n",
       "    'mouth_upper_lip_left_contour3': {'y': 205, 'x': 497},\n",
       "    'right_eye_top': {'y': 135, 'x': 533},\n",
       "    'left_eye_bottom': {'y': 153, 'x': 476},\n",
       "    'right_eyebrow_lower_left_quarter': {'y': 130, 'x': 522},\n",
       "    'right_eye_pupil': {'y': 140, 'x': 535},\n",
       "    'mouth_lower_lip_right_contour1': {'y': 204, 'x': 521},\n",
       "    'mouth_lower_lip_right_contour3': {'y': 214, 'x': 519},\n",
       "    'mouth_lower_lip_right_contour2': {'y': 209, 'x': 528},\n",
       "    'contour_chin': {'y': 241, 'x': 514},\n",
       "    'contour_left9': {'y': 238, 'x': 500},\n",
       "    'left_eye_lower_right_quarter': {'y': 152, 'x': 483},\n",
       "    'mouth_lower_lip_top': {'y': 206, 'x': 507},\n",
       "    'right_eyebrow_upper_middle': {'y': 119, 'x': 531},\n",
       "    'left_eyebrow_left_corner': {'y': 135, 'x': 453},\n",
       "    'right_eye_bottom': {'y': 146, 'x': 536},\n",
       "    'contour_left7': {'y': 223, 'x': 480},\n",
       "    'contour_left6': {'y': 213, 'x': 472},\n",
       "    'contour_left5': {'y': 202, 'x': 467},\n",
       "    'contour_left4': {'y': 190, 'x': 462},\n",
       "    'contour_left3': {'y': 177, 'x': 459},\n",
       "    'contour_left2': {'y': 165, 'x': 456},\n",
       "    'contour_left1': {'y': 153, 'x': 454},\n",
       "    'left_eye_lower_left_quarter': {'y': 152, 'x': 469},\n",
       "    'contour_right1': {'y': 136, 'x': 584},\n",
       "    'contour_right3': {'y': 167, 'x': 586},\n",
       "    'contour_right2': {'y': 151, 'x': 585},\n",
       "    'mouth_left_corner': {'y': 207, 'x': 488},\n",
       "    'contour_right4': {'y': 182, 'x': 584},\n",
       "    'contour_right7': {'y': 223, 'x': 561},\n",
       "    'right_eyebrow_left_corner': {'y': 133, 'x': 510},\n",
       "    'nose_right': {'y': 178, 'x': 522},\n",
       "    'nose_tip': {'y': 178, 'x': 501},\n",
       "    'contour_right5': {'y': 198, 'x': 580},\n",
       "    'nose_contour_lower_middle': {'y': 187, 'x': 504},\n",
       "    'left_eyebrow_lower_left_quarter': {'y': 134, 'x': 461},\n",
       "    'mouth_lower_lip_left_contour3': {'y': 216, 'x': 499},\n",
       "    'right_eye_right_corner': {'y': 139, 'x': 547},\n",
       "    'right_eye_lower_right_quarter': {'y': 143, 'x': 543},\n",
       "    'mouth_upper_lip_right_contour2': {'y': 198, 'x': 524},\n",
       "    'right_eyebrow_lower_right_quarter': {'y': 123, 'x': 545},\n",
       "    'left_eye_left_corner': {'y': 149, 'x': 464},\n",
       "    'mouth_right_corner': {'y': 202, 'x': 536},\n",
       "    'mouth_upper_lip_right_contour3': {'y': 203, 'x': 521},\n",
       "    'right_eye_lower_left_quarter': {'y': 146, 'x': 528},\n",
       "    'left_eyebrow_right_corner': {'y': 136, 'x': 488},\n",
       "    'left_eyebrow_lower_right_quarter': {'y': 136, 'x': 479},\n",
       "    'right_eye_center': {'y': 141, 'x': 534},\n",
       "    'nose_left': {'y': 180, 'x': 490},\n",
       "    'mouth_lower_lip_left_contour1': {'y': 206, 'x': 497},\n",
       "    'left_eye_upper_right_quarter': {'y': 145, 'x': 483},\n",
       "    'right_eyebrow_lower_middle': {'y': 125, 'x': 533},\n",
       "    'left_eye_top': {'y': 144, 'x': 475},\n",
       "    'left_eye_center': {'y': 149, 'x': 476},\n",
       "    'contour_left8': {'y': 231, 'x': 490},\n",
       "    'contour_right9': {'y': 239, 'x': 531},\n",
       "    'right_eye_left_corner': {'y': 145, 'x': 521},\n",
       "    'mouth_lower_lip_bottom': {'y': 217, 'x': 508},\n",
       "    'left_eyebrow_upper_left_quarter': {'y': 128, 'x': 460},\n",
       "    'left_eye_pupil': {'y': 147, 'x': 476},\n",
       "    'right_eyebrow_upper_left_quarter': {'y': 124, 'x': 519},\n",
       "    'contour_right8': {'y': 232, 'x': 547},\n",
       "    'right_eyebrow_right_corner': {'y': 124, 'x': 558},\n",
       "    'right_eye_upper_left_quarter': {'y': 138, 'x': 526},\n",
       "    'left_eyebrow_upper_middle': {'y': 127, 'x': 470},\n",
       "    'right_eyebrow_upper_right_quarter': {'y': 118, 'x': 545},\n",
       "    'nose_contour_left1': {'y': 147, 'x': 494},\n",
       "    'nose_contour_left2': {'y': 171, 'x': 492},\n",
       "    'mouth_upper_lip_right_contour1': {'y': 196, 'x': 512},\n",
       "    'nose_contour_right1': {'y': 145, 'x': 512},\n",
       "    'nose_contour_right2': {'y': 169, 'x': 517},\n",
       "    'mouth_lower_lip_left_contour2': {'y': 212, 'x': 493},\n",
       "    'contour_right6': {'y': 212, 'x': 573},\n",
       "    'nose_contour_right3': {'y': 183, 'x': 514},\n",
       "    'nose_contour_left3': {'y': 185, 'x': 496},\n",
       "    'left_eye_right_corner': {'y': 149, 'x': 489},\n",
       "    'left_eyebrow_upper_right_quarter': {'y': 129, 'x': 480},\n",
       "    'right_eye_upper_right_quarter': {'y': 136, 'x': 541},\n",
       "    'mouth_upper_lip_bottom': {'y': 205, 'x': 507}},\n",
       "   'face_rectangle': {'width': 131, 'top': 114, 'left': 458, 'height': 131},\n",
       "   'face_token': '257208d826085d4ecaa96e6f6ab7e246'}]}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "analyze.face_analyze(API_KEY,API_S,face_tokens)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "67e044fb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "475fb98f",
   "metadata": {},
   "source": [
    "# 尝试创建compare.py，并实现功能调用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "fc4b860c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648197972,c8bb7cf2-c512-47c0-9fa3-02f0b14b834d',\n",
       " 'time_used': 133,\n",
       " 'faces': [{'face_token': 'c1efaa69d9105b010cf48b702223b1c1',\n",
       "   'face_rectangle': {'top': 114, 'left': 458, 'width': 131, 'height': 131}}],\n",
       " 'image_id': 'wsDxk2Us3E5eh9jFQgzW+Q==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "detect.face_detect(API_KEY,API_S,'kylie_1.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "e416bb8e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'257208d826085d4ecaa96e6f6ab7e246'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_token1 = face1['faces'][0]['face_token']\n",
    "face_token1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "eca866b2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648197974,f5c7e840-752b-463f-bbff-8c53aee7e182',\n",
       " 'time_used': 39,\n",
       " 'faces': [{'face_token': 'd3a730b43c1e6bc9a292ee36f5a25473',\n",
       "   'face_rectangle': {'top': 46, 'left': 201, 'width': 51, 'height': 51}}],\n",
       " 'image_id': '0jLt3hHyVmhGPEgUGWgKsA==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "detect.face_detect(API_KEY,API_S,'kylie_2.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a2868a08",
   "metadata": {},
   "outputs": [],
   "source": [
    "face2 = detect.face_detect(API_KEY,API_S,'kylie_2.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "53d0be14",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'a2cd90fc1ae14eb18eed2a34e15a36a5'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_token2 = face2['faces'][0]['face_token']\n",
    "face_token2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "703c6fa9",
   "metadata": {},
   "outputs": [],
   "source": [
    "import compare"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "77a58e93",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on module compare:\n",
      "\n",
      "NAME\n",
      "    compare\n",
      "\n",
      "FUNCTIONS\n",
      "    face_compare(API_key, API_sercret, face_token1, face_token2)\n",
      "        该函数为调用face++ face_compare接口\n",
      "\n",
      "FILE\n",
      "    /Users/a123/api/week04/compare.py\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(compare)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "1a867b6a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648197979,e46370e3-aebc-4ba1-aa4a-b1181e357176',\n",
       " 'time_used': 519,\n",
       " 'confidence': 82.066,\n",
       " 'thresholds': {'1e-3': 62.327, '1e-4': 69.101, '1e-5': 73.975}}"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compare.face_compare(API_KEY,API_S,face_token1,face_token2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f825ed34",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "e20fd58a",
   "metadata": {},
   "source": [
    "# 尝试创建search.py，并实现功能调用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "e2902c63",
   "metadata": {},
   "outputs": [],
   "source": [
    "getfacesets_url = \"https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets\"\n",
    "payload = {\n",
    "    'api_key':API_KEY,\n",
    "    'api_secret':API_S,\n",
    "}\n",
    "r = requests.post(url = getfacesets_url, params = payload)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "738150ac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'time_used': 95,\n",
       " 'facesets': [{'faceset_token': '6493fd9fc59520a0065070fa1d3be26a',\n",
       "   'outer_id': '',\n",
       "   'display_name': 'Kylie Jenner',\n",
       "   'tags': ''},\n",
       "  {'faceset_token': '6d4a02650435e771a75555d4b7040259',\n",
       "   'outer_id': '',\n",
       "   'display_name': 'Kylie Jenner',\n",
       "   'tags': ''},\n",
       "  {'faceset_token': '52471da8a9d0f1ddc26a8977b34f3535',\n",
       "   'outer_id': '',\n",
       "   'display_name': '',\n",
       "   'tags': ''},\n",
       "  {'faceset_token': '1ee6f8ce4a8fb11016b59347f8862d2c',\n",
       "   'outer_id': 'API020305',\n",
       "   'display_name': '2020级网新API周二上午班',\n",
       "   'tags': ''},\n",
       "  {'faceset_token': '205230ebd049d19d18bc8c663cd5d679',\n",
       "   'outer_id': 'API000000',\n",
       "   'display_name': '2020级网新API周二上午班',\n",
       "   'tags': ''}],\n",
       " 'request_id': '1648197982,48d53b07-2a29-44c8-8c0c-021e5936f50a'}"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "163c9372",
   "metadata": {},
   "outputs": [],
   "source": [
    "faceset_tokens = r.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "a9d11f25",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'6493fd9fc59520a0065070fa1d3be26a'"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "faceset_token = faceset_tokens['facesets'][0]['faceset_token']\n",
    "faceset_token"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "1aa675d8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648197988,1e1a7752-e5a9-4daa-a323-7a981a1b409c',\n",
       " 'time_used': 113,\n",
       " 'faces': [{'face_token': 'fa51e4097422f31593a084667aa92e03',\n",
       "   'face_rectangle': {'top': 216, 'left': 351, 'width': 194, 'height': 194}}],\n",
       " 'image_id': 'Vaz/DIPHEJAoSGdkMUvppg==',\n",
       " 'face_num': 1}"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "detect.face_detect(API_KEY,API_S,'kylie_3.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "87747c24",
   "metadata": {},
   "outputs": [],
   "source": [
    "face3 = detect.face_detect(API_KEY,API_S,'kylie_3.jpeg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "b9fc628c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1d1eb7241f0cb62dc4b51a66648f8b60'"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "face_token = face3['faces'][0]['face_token']\n",
    "face_token"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "14aef121",
   "metadata": {},
   "outputs": [],
   "source": [
    "import search"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "39a30ced",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on module search:\n",
      "\n",
      "NAME\n",
      "    search\n",
      "\n",
      "FUNCTIONS\n",
      "    face_search(API_key, API_sercret, faceset_token, face_token)\n",
      "        该函数为调用face++ face_search接口\n",
      "\n",
      "FILE\n",
      "    /Users/a123/api/week04/search.py\n",
      "\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(search)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "04bdede1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'request_id': '1648198117,92adef6f-4810-42ce-8b34-c0768c5222f3',\n",
       " 'time_used': 399,\n",
       " 'thresholds': {'1e-3': 62.327, '1e-5': 73.975, '1e-4': 69.101},\n",
       " 'results': [{'confidence': 84.267,\n",
       "   'user_id': '',\n",
       "   'face_token': '3d034e92c35d7005f938eb288630be8e'}]}"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "search.face_search(API_KEY,API_S,faceset_token,face_token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f3364411",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
